![]() |
![]() |
|
rtk 19961996.1.1 (napisi)Urejanje števil 1. podnalogaKatja zelo rada programira, zato je napisala funkcijo, ki sprejme seznam števil, jih uredi po velikosti od najmanjšega do največjega in vrne urejen seznam. Nekega jutra je bila zelo zaspana in je funkcijo po nesreči izbrisala. NalogaPomagaj Katji in namesto nje napiši ustrezno funkcijo Vhodni podatkiSeznam števil, ki niso urejena po velikosti. Izhodni podatkiSeznam s števili, urejenimi po velikosti naraščajoče. KomentarFunkcija je eden izmed znanih algoritmov za urejanje seznamov. Lahko si pomagaš s člankom na Wikipedii. Uradna rešitevdef uredi_stevila(seznam): '''Sprejme seznam števil in jih uredi po velikosti naraščajoče.''' n = len(seznam) i = 1 while i < n: j = i while j > 0 and seznam[j-1] > seznam[j]: seznam[j-1], seznam[j] = seznam[j], seznam[j-1] j += -1 i += 1 return seznam 1996.1.2 (napisi)Ogrlice 1. podnalogaMaja v prostem času rada sestavlja ogrlice, pri tem pa za vsako uporabi Primer zapisa ogrlice: NalogaPomagaj Maji sestaviti funkcijo Ogrlici sta enaki, če sta enaka njuna niza. Ker so ogrlice krožne, lahko
za prvo kroglico izberemo poljubno kroglico iz ogrlice. Enako torej velja za
njen niz. Predpostavimo, da je število Vhodni podatkiDva niza, ki predstavljata ogrlici. Izhodni podatkiFunkcije vrne vrednost Primer:
Uradna rešitevdef primerjaj_ogrlici(ogrlica1, ogrlica2): '''Funkcija vrne True, če sta ogrlici enaki in False sicer.''' n = len(ogrlica1) for i in range(n): ogrlica3 = ogrlica2[i:] + ogrlica2[:i] if ogrlica1 == ogrlica3: return True return False # drugi način: # def primerjaj_ogrlici(ogrlica1, ogrlica2): # '''Funkcija vrne True, če sta ogrlici enaki in False sicer.''' # # ogrlica3 = ogrlica1 + ogrlica1 # if ogrlica2 in ogrlica3: # return True # else: # return False 1996.1.3 (napisi)Domača naloga 1. podnalogaMiha je na računalniku napisal domačo nalogo za slovenščino in jo poslal očetu
v pregled. Oče je vanjo vpisal svoje pripombe tako, da jih je obdal z znakoma
NalogaNapiši funkcijo Vhodni podatkiDomača naloga napisana v obliki niza. Izhodni podatkiDomača naloga v obliki niza, brez očetovih komentarjev. PrimerVhod
Izhod
KomentarDvojnih presledkov, ki nastanejo pri brisanju komentarjev, ni treba odstraniti. Uradna rešitevdef odstrani_komentarje(niz): '''Funkcija iz besedila odstrani vse kar se nahaja med znakoma < in >.''' nov_niz = "" komentar = False for znak in niz: if znak == '<': komentar = True continue elif znak == '>': komentar = False continue if not komentar: # nahajamo se zunaj komentarja nov_niz += znak return nov_niz 1996.2.1 (napisi)Palindromi števil 1. podnalogaBesedo ali stavek, ki se nazaj bere enako kot naprej, imenujemo palindrom.
Podobno so številski palindromi števila, katerih zapis v desetiškem sistemu
je z desne proti levi enak kot z leve proti desni (taki števili sta naprimer
Katera pa so števila, za katere je vsota števila (npr. NalogaNapiši funkcijo Vhodni podatkiŠtevilo Izhodni podatkiSeznam števil, ki ustrezajo opisu. Primer
Uradna rešitevdef obrat_stevila(x): '''Funkcija vrne število, ki ga dobimo, če x zapišemo v desetiškem sistemu in ga preberemo od desne proti levi.''' y = 0 while x > 0: y = y * 10 + x % 10 x = (x - y % 10) / 10 return y def vsota_palindrom(n): '''Funkcija izpiše vsa števila do n, za katera velja, da je vsota števila in njegovega obrata palindrom.''' ustrezna_stevila = [] for i in range(1, n): if obrat_stevila(obrat_stevila(i) + i) == obrat_stevila(i) + i: ustrezna_stevila.append(i) return ustrezna_stevilaMesto objave ob koncu projekta 15.9.2018 |